package com.kele.lock8;

import java.util.concurrent.Phaser;
import java.util.concurrent.TimeUnit;

/**
 * @author kele
 * @date 2021/10/9 17:00
 * @description
 * 8锁现象
 * synchronized锁的普通方法的话就会锁的是调用这个方法的对象，如果有多个对象调用那么就不会有用
 * 调用普通同步方法 锁的是调用的对象
 *
 * 调用静态同步方法 锁的是类
 *
 */
public class Test {

    public static void main(String[] args){
        Phone phone=new Phone();
        Phone phone2=new Phone();


        new Thread(()->{
            phone.call();
        },"A").start();

        new Thread(()->{
            phone2.send();
        },"B").start();
    }
}

class Phone{

    public  synchronized void call(){
        try {
            TimeUnit.SECONDS.sleep(4);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("打电话");
        System.out.println(Thread.currentThread().getName());
    }

    public  synchronized void send(){
        System.out.println("发短信");
        System.out.println(Thread.currentThread().getName());
    }
}
